package com.gph.saviorframework.common.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class User implements SecurityEntity,Serializable {

    /**
     * 用户名.主键
     */
    private String username;

    /**
     * 姓名
     */
    private String name;

    /**
     * 描述
     */
    private String description;

    /**
     * 密码
     */
    private String password;

    /**
     * 邮件
     */
    private String email;

    /**
     * 性别
     */
    private String gender;

    /**
     * 身份证号
     */
    private String identity;

    /**
     * 地址
     */
    private String address;

    /**
     * 邮编
     */
    private String post;

    /**
     * 电话
     */
    private String tel;

    /**
     * 手机
     */
    private String mobile;

    /**
     * 生日
     */
    private Date birthday;

    /**
     * 启用
     */
    private boolean enabled;

    /**
     * 帐户未过期
     */
    private boolean accountNonExpired;

    /**
     * 帐户未锁定
     */
    private boolean accountNonLocked;

    /**
     * 凭证未过期
     */
    private boolean credentialsNonExpired;

    /**
     * 次序
     */
    private Integer order;

    /**
     * 创建者
     */
    private User creator;

    /**
     * 创建时间
     */
    private Date created;

    /**
     * 最后修改者
     */
    private User modifier;

    /**
     * 最后修改时间
     */
    private Date modified;

    /**
     * 乐观锁
     */
    private Integer version;

    /**
     * 所属机构
     */
    private Org org;

    /**
     * 岗位
     */
    private Position position;

    /**
     * 关联的角色
     */
    private List<Role> roles;

    /**
     * 用户类型
     */
    private String userType;

    /**
     * 证件类型
     */
    private String certificateType;

    /**
     * 证件号码
     */
    private String certificateNum;



    /**
     * 单位
     */
    private String company;
    /**
     * 公司性质1
     */
    private String companyType1;
    /**
     * 公司性质2
     */
    private String companyType2;
    /**
     * 部门
     */
    private String department;
    /**
     * 职称
     */
    private String zhiCheng;


    public User() {
        setAccountNonLocked(true);
        setAccountNonExpired(true);
        setCredentialsNonExpired(true);
    }

    /**
     * @param username
     */
    public User(String username) {
        super();
        this.username = username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getIdentity() {
        return identity;
    }

    public void setIdentity(String identity) {
        this.identity = identity;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPost() {
        return post;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

    public void setAccountNonExpired(boolean accountNonExpired) {
        this.accountNonExpired = accountNonExpired;
    }

    public void setAccountNonLocked(boolean accountNonLocked) {
        this.accountNonLocked = accountNonLocked;
    }

    public void setCredentialsNonExpired(boolean credentialsNonExpired) {
        this.credentialsNonExpired = credentialsNonExpired;
    }

    public Integer getOrder() {
        return order;
    }

    public void setOrder(Integer order) {
        this.order = order;
    }

    public User getCreator() {
        return creator;
    }

    public Date getCreated() {
        return created;
    }

    public User getModifier() {
        return modifier;
    }

    public Date getModified() {
        return modified;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public void setCreator(User creator) {
        this.creator = creator;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public void setModifier(User modifier) {
        this.modifier = modifier;
    }

    public void setModified(Date modified) {
        this.modified = modified;
    }

    public String getPassword() {
        return password;
    }

    public String getUsername() {
        return this.username;
    }

    public boolean isAccountNonExpired() {
        return accountNonExpired;
    }

    public boolean isAccountNonLocked() {
        return accountNonLocked;
    }

    public boolean isCredentialsNonExpired() {
        return credentialsNonExpired;
    }

    public boolean isEnabled() {
        return enabled;
    }

    public Org getOrg() {
        return org;
    }

    public void setOrg(Org org) {
        this.org = org;
    }

    public Position getPosition() {
        return position;
    }

    public void setPosition(Position position) {
        this.position = position;
    }

    public List<Role> getRoles() {
        return roles;
    }

    public void setRoles(List<Role> roles) {
        this.roles = roles;
    }

    public String getUserType() {
        return userType;
    }

    public void setUserType(String userType) {
        this.userType = userType;
    }
    public String getCertificateType() {
        return certificateType;
    }

    public void setCertificateType(String certificateType) {
        this.certificateType = certificateType;
    }

    public String getCertificateNum() {
        return certificateNum;
    }

    public void setCertificateNum(String certificateNum) {
        this.certificateNum = certificateNum;
    }

    public String getCompanyType1() {
        return companyType1;
    }

    public void setCompanyType1(String companyType1) {
        this.companyType1 = companyType1;
    }

    public String getCompanyType2() {
        return companyType2;
    }

    public void setCompanyType2(String companyType2) {
        this.companyType2 = companyType2;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getZhiCheng() {
        return zhiCheng;
    }

    public void setZhiCheng(String zhiCheng) {
        this.zhiCheng = zhiCheng;
    }
    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }
}
